class TopicScoliosisMessage:
    def __init__(
        self,
        id_: str,
        modality_id: str,
        path_to_s3: str,
        bucket: str,
        name: str,
        extension: str,
        is_pathology: str,
        type_of_research: str,
        name_of_modality: str,
        name_of_organ: str,
        name_of_disease: str,
        type_of_data: str,
        type_of_task: str,
        s3_id: int = 1,
        meta_id: int = 1,
        size_in_mb: int = 0,
    ) -> None:
        self.id_ = id_
        self.modality_id = modality_id
        self.s3_id = s3_id
        self.meta_id = meta_id
        self.size_in_mb = size_in_mb
        self.path_to_s3 = path_to_s3
        self.bucket = bucket
        self.name = name
        self.extension = extension
        self.is_pathology = is_pathology
        self.type_of_research = type_of_research
        self.name_of_modality = name_of_modality
        self.name_of_organ = name_of_organ
        self.name_of_disease = name_of_disease
        self.type_of_data = type_of_data
        self.type_of_task = type_of_task

    @classmethod
    def from_message_data(cls, message_data: dict) -> "TopicScoliosisMessage":
        return cls(
            id_=message_data["id"],
            modality_id=message_data["modality_id"],
            path_to_s3=message_data["path_to_s3"],
            bucket=message_data["bucket"],
            name=message_data["name"],
            extension=message_data["extension"],
            is_pathology=message_data["is_pathology"],
            type_of_research=message_data["type_of_research"],
            name_of_modality=message_data["name_of_modality"],
            name_of_organ=message_data["name_of_organ"],
            name_of_disease=message_data["name_of_disease"],
            type_of_data=message_data["type_of_data"],
            type_of_task=message_data["type_of_task"],
            s3_id=1,
            meta_id=1,
            size_in_mb=0,
        )
